home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Global Amiga Experience
/
globalamigaexperience.iso
/
compressed
/
applications
/
maxonhothelp3demo.lha
/
HotHelp-3-DEMO
/
HotHelp 3
< prev
next >
Wrap
Text File
|
1995-04-23
|
38KB
|
946 lines
;====================================================================
; Einige Initialisierungen
;====================================================================
(complete 0)
; Die Versionsnummer und das Erstellungs-Datum der hier installierten
; HotHelp-Version.
(set hh-version "3")
(set hh-version-intern "3.00")
(set hh-date "(14 Feb 94)")
; HotHelp wird über eine ganze Reihe von Verzeichnissen verteilt, so daß sich
; kein einzelnes Default-Dir angeben läßt.
(set @default-dest "")
(set os-version (/ (getversion) 65536))
(set os-13 (< os-version 36))
(set os-20 (>= os-version 36))
(set os-21 (>= os-version 38))
; Die Pfadnamen der einzelnen Quell-Dateien.
(set source-lha "Tools/LhA")
(set source-hotkeyhelp "C/HotKeyHelp")
(set source-toolicons (if os-20 "Icons/T2.0/"
"Icons/T1.3/"))
(set source-toolicon-hkh (cat source-toolicons "HKH.info"))
(set source-toolicon-hhpref (cat source-toolicons "HHPref.info"))
(set source-toolicon-hhpro (cat source-toolicons "HHPro.info"))
(set source-toolicon-easyhh (cat source-toolicons "HHEasy.info"))
(set source-toolicon-hhmarker (cat source-toolicons "HHMark.info"))
(set source-toolicon-hhcomp (cat source-toolicons "HHC.info"))
(set source-toolicon-hhmanager (cat source-toolicons "HHMan.info"))
(set source-toolicon-hh (cat source-toolicons "HH.info"))
(set source-icons (if os-20 "Icons/Icons2.0"
"Icons/Icons1.3"))
(set source-txt-hothelp "Text/HotHelp.txt")
(set source-txt-glossar "Text/Glossar.txt")
(set source-txt-iff "Text/IFF.txt")
(set source-txt-ansic "Text/ANSI-C.txt")
(set source-txt-hothelptools "Text/HotHelpTools.txt")
(set source-txt-libsdevs "Text/Libs & Devs 1.3.txt")
(set source-txt-arexx "Text/ARexx.txt")
(set source-txt-shell "Text/Shell.txt")
(set archive-hothelplib "Archive/HotHelpLib.lha")
(set archive-fasthothelplib "Archive/FastHotHelpLib.lha")
(set archive-hothelphandler "Archive/Handler.lha")
(set archive-catalogs "Archive/Catalogs.lha")
(set archive-tools "Archive/Tools.lha")
(set archive-header "Archive/Header.lha")
; Die Größen der Text-Dateien.
(set size-txt-hothelp 125000)
(set size-txt-ansic 30000)
(set size-txt-glossar 70000)
(set size-txt-iff 15000)
(set size-txt-hothelptools 360000)
(set size-txt-libsdevs 320000)
(set size-txt-arexx 35000)
(set size-txt-shell 45000)
; Die Pfadnamen der Programme, die vom Installations-Skript aufgerufen werden.
(set run-lhapatterns "Tools/LhaPatterns")
(set run-flushprojects "Tools/FlushProjects")
(set run-deleteproject "Tools/DeleteProject")
(set run-lha "RAM:LhA -a")
(set run-clearstartup "Tools/ClearStartup")
(set run-setprojectpath "Tools/SetProjectPath")
; Der Name des HotHelp-Verzeichnis darf nicht länger als dieser Wert sein.
(set max-project-dir 200)
; Default-Sprache für die verschiedenen Installations-Tools ist Deutsch.
(set tools-language 0)
;=====================================================================================
; installtext
;
; Die Prozedur erwartet Parameter in den folgenden Variablen:
; §it-name - Name des Projektes, dessen Text-Datei kopiert wird
; §it-size - Größe der Text-Datei
; §it-source - Pfadname der zu kopierenden Textdatei
; §it-dest - Pfadname des Zielverzeichnisses
; Die folgenden Variablen werden von der Prozedur gesetzt:
; §it-dest - Name des Verzeichnisses, in dem die Datei tatsächlich installiert
; wurde. Kann sich vom Eingabewert unterscheiden, wenn aufgrund
; mangelnden Disk-Speichers ein anderer Datenträger gewählt wurde.
;=====================================================================================
(procedure installtext
(
(if (and (> @user-level 0) (<= (getdiskspace §it-dest) §it-size))
(
(until (> (getdiskspace §it-dest) §it-size)
(
(message (cat "Auf dem gewählten Datenträger \"" §it-dest "\" ist nicht "
"mehr genügend freier Speicherplatz vorhanden, um die Texte "
"des " §it-name "-Projektes zu installieren (es sind nur noch "
(/ (getdiskspace §it-dest) 1024) " KByte frei, während die "
"Text-Datei " (/ §it-size 1024) " KByte benötigt).\n"
"Dieser Fehler tritt üblicherweise bei Installation auf "
"Disketten auf (falls Sie HotHelp auf eine Festplatte "
"installieren und die Meldung sehen, sollten Sie die "
"Installation abbrechen und erst ein wenig Platz auf Ihrer "
"Platte schaffen).\n\n"
"Sie müssen daher nun eine andere Disk angeben, auf die die "
"Text-Datei kopiert werden soll.\n"))
(set §it-dest
(askdir
(prompt "Auswahl der Disk für die Text-Datei des " §it-name "-Projektes (Dateigröße: " (/ §it-size 1024) " KByte)")
(help (cat " Bei Installation auf Disketten müssen die Text-Dateien "
"auf mehrere Disks verteilt werden, da sie sehr viel Platz "
"benötigen. Sie müssen daher nun eine andere Disk auswählen, "
"auf die die Text-Dateien kopiert werden sollen. Sie können "
"auf der Disk auch Unterverzeichnisse anlegen.\n"
" Bitte beachten Sie jedoch, daß alle Disketten "
"eindeutig Namen tragen müssen (z.B. \"HotHelp1\", "
"\"HotHelp2\", etc.). Keinesfalls dürfen zwei Disketten "
"denselben Namen tragen!"
"\n\n"
@askdir-help))
(default §it-dest)
(newpath)
)
)
(if (= (exists §it-dest) 0)
(makedir §it-dest (infos) (safe))
(set §it-dest (expandpath §it-dest))
)
; Der Name darf nicht zu lang sein, sonst können wir ihn hinterher nicht in
; die Header-Dateien der Projekte eintragen.
(if (>= (strlen §it-dest) max-project-dir)
(abort (cat "\nDer eingegebene Name \n\"" §it-dest "\"\nist zu lang!\n\n"
"Bitte geben Sie maximal " (- max-project-dir 1) " Zeichen ein!"))
)
)
)
)
)
(copyfiles
(prompt (cat "Kopiere Projekt-Texte " §it-name))
(source §it-source)
(dest §it-dest)
)
)
)
;=====================================================================================
; Beginn der Installation
;=====================================================================================
; Eine kleine Einleitungs-Message, gefolgt vom Startbildschirm des Installers.
(set act-user-level @user-level)
(user 1)
(message (cat "Willkommen zum Installationsprogramm der Demoversion von \"HotHelp "
hh-version "\"!\n\n"
"Dieses Skript kopiert die verschiedenen Dateien, "
"aus denen sich das HotHelp-System zusammensetzt, "
"auf Ihre Festplatte.\n\n"
"Falls Sie über keine Platte verfügen, werden statt dessen bis zu "
"drei Leerdisketten benötigt (Hinweise zum Formatieren von Disketten "
"entnehmen Sie bitte Ihrem Amiga-Benutzerhandbuch).\n"
"Bitte beachten Sie, daß alle verwendeten Leerdisks unterschiedliche "
"Namen haben müssen und daß keine den Namen \"HotHelp\" tragen "
"darf!"))
(user act-user-level)
(welcome)
(set partition "WORK:")
(if (= @user-level 0)
(
(user 1)
(message (cat "Im Einsteiger-Modus wird davon ausgegangen, daß HotHelp auf "
"einer Festplatte installiert wird, auf der noch mindestens "
"ca. 4 MByte freier Speicherplatz verfügbar sind. Sie müssen dazu im "
"nächsten Fenster den Namen der gewünschten Festplatten-Partition "
"angeben.\n\n"
"Alle weiteren Angaben werden dann vom Installations-Skript "
"möglichst genau an Ihr System angepaßt - insbesondere wird auch "
"erkannt, wenn Sie schon eine alte HotHelp-Version installiert "
"haben; diese wird dann komplett durch die neue Version ersetzt."))
(set ok 0)
(while (not ok)
(set partition
(askdir
(prompt "Auswahl des Laufwerks für die HotHelp-Installation")
(help (cat " Sie können über das Symbol 'Laufwerke anz.' (bzw. 'Show drives') "
"eine Übersicht über alle Laufwerke Ihres Amiga anfordern; aus "
"dieser Übersicht sollten Sie nur die oberen, nicht farblich "
"gekennzeichneten Einträge auswählen.\n"
" Typische sinnvolle Namen sind z.B. \"WORK:\", \"HD0:\" oder \"DH0:\"; "
"nicht verwenden sollten Sie Namen wie \"DF0:\", \"DF1:\", "
"\"DF2:\", \"DF3:\", \"RAD:\", \"RAM:\", \"System2.0:\", "
"\"WB_2.x:\", \"System3.0:\" oder \"WB_3.x:\"!"
"\n\n"
@askdir-help))
(default partition)
(disk)
)
)
; Ist der Dateiname leer oder endet nicht mit einem ':' oder existiert unter
; diesem Namen kein Verzeichnis, wird eine Fehlermeldung angezeigt; andernfalls
; kann die Auswahl-Schleife beendet werden.
(if (or (or (<= (strlen partition) 0) (<> (substr partition (- (strlen partition) 1) 1) ":")) (<> (exists partition (noreq)) 2))
(message (cat "\nBei Ihrer Auswahl \"" partition "\" handelt es sich nicht um "
"eine gültige Laufwerks-Angabe!\n\n"
"Sie können über das Symbol 'Laufwerke anz.' (bzw. 'Show drives') "
"eine Übersicht über alle Laufwerke Ihres Amiga anfordern; aus "
"dieser Übersicht sollten Sie nur die oberen, nicht farblich "
"gekennzeichneten Einträge auswählen.\n"
"Typische sinnvolle Namen sind z.B. \"WORK:\", \"HD0:\" oder \"DH0:\"; "
"nicht verwenden sollten Sie Namen wie \"DF0:\", \"DF1:\", "
"\"DF2:\", \"DF3:\", \"RAD:\", \"RAM:\", \"System2.0:\", "
"\"WB_2.x:\", \"System3.0:\" oder \"WB_3.x:\"!"))
;else
(set ok 1)
)
)
(user 0)
)
)
; Dieser kleine Trick ist notwendig, damit LHA unter 1.3 und 2.0 keinen Mist
; baut...
(run run-lhapatterns)
; Falls HotHelp schon installiert ist, wird dies hier ermittelt. 'old-hh-version'
; kann anschließend die folgenden drei Werte beinhalten: -1 (noch nicht
; installiert), 0 (Version 2 war installiert) oder 1 (Version 3)
(set old-hh-version -1)
(if (<> (getassign "HOTHELP") "")
(
; Nun werden sicherheitshalber alle evtl. schon geladenen Projekte wieder aus
; dem Speicher entfernt (diese geLock()ten Dateien lassen sich ja so
; wahnsinnig schlecht überschreiben...).
(working "\nEntferne evtl. geladene Projekte aus dem Speicher...")
(run (cat run-flushprojects " " tools-language))
; Wenn eine dieser typischen 3er-Dateien existiert, gehen wir davon aus, daß
; Version 3 installiert ist.
(set old-hh-version
(if (or (exists "L:HotHelpHandler")
(exists "HOTHELP:HotHelpLib.English"))
1
;else
0)
)
; Nun kann noch die Hilfsdatei des alten Managers entfernt werden.
(if (exists ("HOTHELP:HotHelpManager.Hlp"))
(delete "HOTHELP:HotHelpManager.Hlp"
(prompt (cat "\nLösche HOTHELP:HotHelpManager.Hlp"
"\n\n"
"Diese Datei enthält die Hilfstexte für den "
"alten HotHelpManager. Da dieses Programm nicht "
"mehr benötigt wird, kann auch diese Datei entfernt "
"werden."))
(help "")
(confirm)
)
)
)
)
(set libs-chosen
(askoptions
(prompt "Auswahl der Funktions-Bibliotheken")
(help (cat " Als erstes müssen Sie festlegen, welche Funktions-Bibliotheken auf "
"Ihrem System installiert werden sollen. Im Normalfall können Sie die "
"vorgegebene Einstellung übernehmen und die Installation direkt "
"fortsetzen.\n"
" Hier noch einige Hintergrund-Informationen über die einzelnen "
"Bibliotheken:\n"
" HotHelp.Library - Diese Library stellt das Kernstück von "
"HotHelp dar. Es handelt sich um eine Funktions-Bibliothek, in "
"der alle Routinen zusammengefaßt sind, die zum Verwalten und "
"Anzeigen der Hilfstexte benötigt werden - mit anderen Worten: "
"ohne diese Bibliothek geht überhaupt nichts!\n\n"
" RCT.Library - Unter OS 1.3 wird diese Bibliothek verwendet, "
"um einen FileRequester anzubieten. Sie können allerdings auf das "
"Kopieren verzichten, wenn Sie schon über die ReqTools- oder "
"die Arp-Library verfügen - HotHelp greift dann auf deren "
"File-Requester zurück."
"\n\n"
@askoptions-help))
(choices
"HotHelp.Library"
"RCT.Library"
)
(default (if os-20 1 3) )
)
)
; LhA wird in die RAM-Disk kopiert, damit das Programm nicht jedesmal von Disk
; geladen werden muß.
(copyfiles
(source source-lha)
(dest "RAM:")
(nogauge)
)
; Nun werden die gewünschten Libraries der Reihe nach aus ihren Archiven
; entnommen.
(if (<> libs-chosen 0)
(
(if (in libs-chosen 0)
(run (cat run-lha " x " archive-hothelplib " LIBS: HotHelp.Library"))
)
(complete 5)
(if (in libs-chosen 1)
(run (cat run-lha " x " archive-hothelplib " LIBS: RCT.Library"))
)
(complete 10)
)
)
(complete 10)
; Nun kommen die Handler an die Reihe:
(run
(prompt (cat "\nKopieren der HotHelp-Handler\n\n"
"Bei den Handlern handelt es sich um Programm-Teile, "
"die von der Library bzw. HotKeyHelp nachgeladen werden, "
"um eigene Prozesse daraus zu erzeugen.\n"
"Der HotHelpHandler wird benötigt, um asynchrone "
"HotHelp-Fenster zu erzeugen, der HotKeyHelpHandler "
"wird von HotKeyHelp als eigener Prozeß installiert, "
"der für die Überwachung des Input-Streams, das "
"ARexx-Interface und die Onlineprojekte zuständig ist."))
(help (cat " Bei Zustimmung werden die beiden Handler in das "
"L:-Verzeichnis entpackt, wo sie von HotHelp erwartet werden."))
(cat run-lha " x " archive-hothelphandler " L:")
(confirm)
)
(complete 15)
; And now for something completely different: It's Monty Pythons Flying HotKeyHelp!
(set hotkeyhelp-dir
(askdir
(prompt "Auswahl des HotKeyHelp-Verzeichnisses")
(help (cat " Das Programm HotKeyHelp ist ebenfalls sehr wichtig für "
"das HotHelp-System. Es installiert einen Input-Handler, der "
"alle Tastatur-Eingaben überwacht. Wird einer der vorgegebenen "
"Hotkeys entdeckt, öffnet der Handler über die HotHelp-Library "
"ein HotHelp-Fenster mit einem Hilfstext - je nachdem, welcher "
"Hotkey eingegeben wurde.\n"
" Ohne dieses Programm können demnach keine HotHelp-Fenster "
"über die Hotkeys geöffnet werden. Auch die neuen Online-Projekte "
"und das ARexx-Interface sind nur verwendbar, wenn HotKeyHelp "
"installiert wurde.\n"
" Sie müssen nun hier festlegen, in welches Verzeichnis "
"das Programm kopiert werden soll."
"\n\n"
@askdir-help))
(default "C:")
(newpath)
)
)
(if (= (exists hotkeyhelp-dir) 0)
(makedir hotkeyhelp-dir (infos) (safe))
(set hotkeyhelp-dir (expandpath hotkeyhelp-dir))
)
(copyfiles
(source source-hotkeyhelp)
(dest hotkeyhelp-dir)
)
(copyfiles
(source source-toolicon-hkh)
(dest hotkeyhelp-dir)
(newname "HotKeyHelp.info")
)
(complete 20)
; Nun wird das Verzeichnis ausgewählt, in dem alle HotHelp-Dateien untergebracht
; werden sollen. Diesem Verzeichnis wird später das HOTHELP:-Device zugeordnet.
(message (cat "\nBitte bestimmen Sie jetzt das Verzeichnis, in dem die für HotHelp "
"wichtigen Daten abgelegt werden sollen. Dabei handelt es sich z.B. "
"um eine Datei mit den aktuellen Einstellungen des Systems, diverse "
"Icon-Dateien und (last but not least) die Projekt-Dateien mit "
"den Hilfstexten selber.\n"))
; Falls HOTHELP: schon assigned ist (HotHelp also schon mal installiert wurde),
; weisen wir hier den entsprechenden Pfad an 'hothelp-dir' zu - andernfalls wird
; als Default "WORK:HotHelp" angenommen.
(set hothelp-dir (getassign "HOTHELP"))
(if (= hothelp-dir "")
(set hothelp-dir (cat partition "HotHelp"))
)
(set hothelp-dir
(askdir
(prompt "Auswahl des HotHelp-Verzeichnisses")
(help (cat " Sie müssen nun festlegen, in welchem Verzeichnis die "
"Daten von HotHelp abgelegt werden sollen. Falls Sie HotHelp "
"schon vorher einmal installiert haben, wird hier das damals "
"ausgewählte Verzeichnis vorgegeben - andernfalls lautet die "
"Vorgabe \"" partition "HotHelp\".\n"
" Festplatten-Besitzer können das so voreingestellte "
"Verzeichnis 'HotHelp' auf der " partition "-Partition "
"verwenden.\n"
" Bei Installation auf Disketten sollten Sie eine eigene "
"Disk für die Dateien verwenden, auf der Sie dann ein "
"entsprechendes Unterverzeichnis anlegen. Liegt die "
"Ziel-Diskette z.B. in Laufwerk 1, sollten Sie "
"\"DF1:HotHelp\" in das Feld 'Ausgewählte Schublade' "
"eingeben, um ein Verzeichnis dieses Namens auf der Disk "
"anlegen zu lassen. Verwenden Sie eine der vorbereiteten "
"Leerdisketten."
"\n\n"
@askdir-help))
(default hothelp-dir)
(newpath)
)
)
(if (= (exists hothelp-dir) 0)
(makedir hothelp-dir (infos) (safe))
(set hothelp-dir (expandpath hothelp-dir))
)
(if (>= (strlen hothelp-dir) max-project-dir)
(abort (cat "\nDer eingegebene Name \n\"" hothelp-dir "\"\nist zu lang!\n\n"
"Bitte geben Sie maximal " (- max-project-dir 1) " Zeichen ein!"))
)
; Jetzt folgen die Sprach-Dateien.
(if (or (<> (getassign "LOCALE") "") os-21)
(run
(prompt (cat "\nKopieren der Sprachen-Kataloge\n\n"
"Die Kataloge enthalten die deutschen Texte, die innerhalb der "
"HotHelp-Library und der HotHelp-Tools verwendet werden.\n"
"(Es handelt sich dabei nicht um Hilfstexte, sondern um ganz "
"normale Texte wie z.B. Beschriftungen von Symbolen, Meldungen an "
"den Benutzer etc.)"))
(help (cat " HotHelp unterstützt in der neuen Version " hh-version " die "
"Locale-Library. Das bedeutet, daß die Sprache der Benutzerführung "
"eines Programms über den System-Editor 'Locale' "
"bestimmt werden kann.\n"
" Diese beiden Kataloge werden benötigt, wenn Sie HotHelp "
"mit einer deutschsprachigen Oberfläche verwenden wollen. Die "
"beiden Dateien werden im Verzeichnis LOCALE:Catalogs/Deutsch "
"abgelegt."))
(cat run-lha " x " archive-catalogs " LOCALE:Catalogs/Deutsch/ #?.catalog")
(confirm)
)
)
(complete 25)
; Dieses Monster hängt an den Verzeichnisnamen einen '/' an, falls er nicht
; leer ist und nicht bereits mit ':' oder '/' endet (ansonsten bekommt LHA
; Probleme).
(set dst-dir hothelp-dir)
(if (and (> (strlen dst-dir) 0) (and (<> (substr dst-dir (- (strlen dst-dir) 1) 1) ":") (<> (substr dst-dir (- (strlen dst-dir) 1) 1) "/"))) (set dst-dir (cat dst-dir "/")))
(run
(prompt (cat "\nKopieren von HotHelps Sprachen-Dateien\n\n"
"Diese Dateien enthalten zum einen die englischen Vorgabe-Texte "
"der Library und der Tools sowie deren deutsche Übersetzungen. "
"Falls Sie immer mit mindestens OS 2.1 arbeiten und eben die "
"System-Kataloge installiert haben, können Sie später die beiden "
"Dateien 'HOTHELP:HotHelpLib.Deutsch' und 'HOTHELP:HotHelpTools.Deutsch' "
"wieder löschen."))
(help (cat " Diese Dateien enthalten sämtliche Programm-Texte von HotHelp. "
"Je nach der eingestellten Sprache werden die deutschen oder die "
"englischen Texte verwendet, so daß die gesamte Benutzerführung "
"in der gewählten System-Sprache erfolgt (vor OS 2.1 kann die "
"aktuelle Sprache im Programm 'HotHelpPref' eingestellt werden).\n"
" Die Dateien werden im vorhin gewählten Verzeichnis für die "
"HotHelp-Daten \"" hothelp-dir "\" abgelegt."))
(cat run-lha " x " archive-catalogs " \"" dst-dir "\" #?.Deutsch #?.English")
(confirm)
)
(complete 30)
; Nun die HotHelpTools
; 'tools-chosen' enthält danach eine Bitmaske, aus der hervorgeht, welche Tools
; installiert werden sollen.
(set tools-chosen
(askoptions
(prompt "Auswahl der HotHelpTools")
(help (cat " In diesem Fenster können Sie auswählen, welche der "
"HotHelp-Tools (HotHelp-Werkzeuge) Sie installieren möchten. "
"Im folgenden erhalten Sie eine kurze Übersicht über die "
"Bedeutung der einzelnen Programme:\n\n"
" HotHelpPref - Über dieses Tool kann eine Reihe wichtiger "
"Voreinstellungen getroffen werden, die das gesamte HotHelp-System "
"betreffen. Dazu gehören z.B. die Größe und Position von "
"HotHelp-Fenstern, ihre Farben und der verwendete Zeichensatz, die "
"Hotkeys, die zum Öffnen eines HotHelp-Fensters auf Tastendruck "
"verwendet werden etc.\n\n"
" HotAmigaGuide - Mit diesem Programm können Sie "
"AmigaGuide-Dateien als HotHelp-Projekte anmelden. Anschließend "
"können Sie die AmigaGuide-Texte dann wie ganz normale "
"Projektdateien in jedem HotHelp-Fenster betrachten."
"\n\n"
@askoptions-help))
(choices "HotHelpPref"
"HotAmigaGuide")
(default -1)
)
)
; Wenn keines der Tools installiert werden soll, brauchen wir auch nicht nach dem
; Verzeichnis zu fragen... In diesem Fall wird 'tools-dir' auf den Dummy-String
; "KeineToolsInstalliert" gesetzt...
(set tools-dir "Keine_Tools_Installiert")
(if (<> tools-chosen 0)
(
(set tools-dir
(askdir
(prompt "Auswahl des Tool-Verzeichnis")
(help (cat " Sie müssen nun festlegen, in welchem Verzeichnis die "
"HotHelp-Tools abgelegt werden sollen.\n"
" Festplatten-Besitzer können das voreingestellte "
"Verzeichnis 'HotHelpTools' auf der " partition "-Partition "
"verwenden.\n"
" Bei Installation auf Disketten sollten Sie eine eigene "
"Disk für die Tools benutzen, auf der Sie dann ein "
"entsprechendes Unterverzeichnis anlegen. Liegt die "
"Ziel-Diskette z.B. in Laufwerk 1, sollten Sie "
"\"DF1:HotHelpTools\" in das Feld 'Ausgewählte Schublade' "
"eingeben, um ein Verzeichnis dieses Namens auf der Disk "
"anlegen zu lassen, in den die Tools dann kopiert werden."
"\n\n"
@askdir-help))
(default (cat partition "HotHelpTools"))
(newpath)
)
)
(if (= (exists tools-dir) 0)
(makedir tools-dir (infos) (safe))
(set tools-dir (expandpath tools-dir))
)
; 'tools' enthält anschließend einen String mit den Namen aller gewünschten
; Tools, der dann an LHA übergeben werden kann. Außerdem werden hier bereits
; die Icons erzeugt.
(set tools "")
(if (in tools-chosen 0) ( (set tools (cat tools " HotHelpPref")) (copyfiles (source source-toolicon-hhpref) (dest tools-dir) (newname "HotHelpPref.info") )))
(if (in tools-chosen 1) ( (set tools (cat tools " HotAmigaGuide")) (copyfiles (source source-toolicon-hhpro) (dest tools-dir) (newname "HotAmigaGuide.info"))))
(working "\nDie Tools werden entpackt...")
(set dst-dir tools-dir)
(if (and (> (strlen dst-dir) 0) (and (<> (substr dst-dir (- (strlen dst-dir) 1) 1) ":") (<> (substr dst-dir (- (strlen dst-dir) 1) 1) "/"))) (set dst-dir (cat dst-dir "/")))
(run (cat run-lha " x " archive-tools " \"" dst-dir "\" " tools))
)
)
(complete 35)
; Nun werden die diversen Icons in das HotHelp-Verzeichnis kopiert.
(working "\nDie Standard-Icons werden kopiert...")
(copyfiles
(source source-icons)
(dest (tackon hothelp-dir "Icons"))
(all)
)
(complete 40)
; Und jetzt kommen die Projekt-Dateien!
(message (cat "\nNun müssen noch die im Lieferumfang enthaltenen Dateien mit "
"Hilfstexten (die sogenannten Projekte) installiert werden. "
"Es handelt sich dabei um Auszüge aus den Projekten der HotHelp 3-"
"Vollversion.\n"
"Im folgenden Fenster können Sie dazu festlegen, welche der "
"Projekte Sie installieren möchten und welche nicht.\n"
"Eine Erläuterung zu den einzelnen Projekten erhalten Sie über das "
"'Hilfe...'-Symbol im nächsten Fenster.\n\n"))
(set projects-chosen
(askoptions
(prompt "Auswahl der Projekte")
(help (cat " In diesem Fenster können Sie auswählen, welche der "
"Projekte (Dateien mit Hilfstexten) Sie installieren möchten. "
"Im folgenden erhalten Sie eine kurze Übersicht über die "
"Bedeutung der einzelnen Projekte:\n\n"
" HotHelp - Dieses Projekt enthält eine Reihe wichtiger "
"Informationen über HotHelp selber und sollte auf jeden Fall "
"installiert werden.\n\n"
" HotHelpTools - In diesem Projekt finden Sie Hilfstexte "
"zu allen HotHelpTools. Die kontextsensitive Online-Hilfe "
"(Hilfe auf Tastendruck zum aktuellen Fenster) der Tools "
"kann nur verwendet werden, wenn dieses Projekt installiert "
"wird.\n\n"
" Glossar - Enthält eine ausführliche Erklärung vieler "
"Amiga-typischer Fachausdrücke und ist somit für jeden "
"Gelegenheitsanwender ein ideales Nachschlagewerk.\n\n"
" Shell - Übersicht über alle Shell-Befehle, die von "
"ihnen verwendeten Fehlercodes und verwandte Informationen.\n\n"
" ARexx - Dieses Projekt enthält eine Kurzreferenz für die "
"Programmierung in der Interpretersprache ARexx, die ab Version "
"2.0 Bestandteil des Betriebssystems ist und die vor allem dazu "
"verwendet wird, Anwendungsprogramme von außen zu kontrollieren.\n\n"
" ANSI-C - Eine Beschreibung der Standardbibliothek für "
"C-Compiler, die für jeden C-Programmierer interessant ist.\n\n"
" IFF - Dieses Projekt beschreibt das "
"Standard-Datenaustauschformat IFF des Amiga. Es ist für jeden "
"Programmierer interessant, der IFF-Dateien lesen oder "
"schreiben möchte.\n\n"
" Libs & Devs 1.3 - Eine umfassende Dokumentation des "
"Amiga-Betriebssystems bis einschließlich OS 1.3 mit einer "
"Beschreibung aller System-Funktionen, -Strukturen und -Symbole. "
"Eine Beschreibung aller OS-Versionen bis einschließlich OS 3.0 "
"kann über MAXON bezogen werden."
"\n\n"
@askoptions-help))
(choices "HotHelp"
"HotHelpTools"
"Glossar"
"Shell"
"ARexx"
"ANSI-C"
"IFF"
"Libs & Devs 1.3")
(default -1)
)
)
(if (<> projects-chosen 0)
(
(working "\nDie Header-Dateien werden installiert...")
(set header "")
(if (in projects-chosen 0) (set header (cat header " HotHelp.hdr")))
(if (in projects-chosen 1) (set header (cat header " HotHelpTools.hdr")))
(if (in projects-chosen 2) (set header (cat header " Glossar.hdr")))
(if (in projects-chosen 3) (set header (cat header " Shell.hdr")))
(if (in projects-chosen 4) (set header (cat header " ARexx.hdr")))
(if (in projects-chosen 5) (set header (cat header " ANSI?C.hdr")))
(if (in projects-chosen 6) (set header (cat header " IFF.hdr")))
(if (in projects-chosen 7) (set header (cat header " Libs???Devs?1.3.hdr")))
(set dst-dir (tackon hothelp-dir "Projekte"))
(if (and (> (strlen dst-dir) 0) (and (<> (substr dst-dir (- (strlen dst-dir) 1) 1) ":") (<> (substr dst-dir (- (strlen dst-dir) 1) 1) "/"))) (set dst-dir (cat dst-dir "/")))
(run (cat run-lha " x " archive-header " \"" dst-dir "\" " header))
(complete 45)
; Damit wären die Header-Files schon mal da, wo sie hingehören - nämlich in
; HOTHELP:Projekte. Nun müssen wir uns noch um die Verteilung der Text-Dateien
; kümmern.
(set pro-dir (tackon hothelp-dir "Projekte"))
(if (in projects-chosen 0) ( (set §it-name "HotHelp")
(set §it-size size-txt-hothelp)
(set §it-source source-txt-hothelp)
(set §it-dest pro-dir)
(installtext)
(set pro-dir-hothelp §it-dest)))
(complete 50)
(if (in projects-chosen 2) ( (set §it-name "Glossar")
(set §it-size size-txt-glossar)
(set §it-source source-txt-glossar)
(set §it-dest pro-dir)
(installtext)
(set pro-dir-glossar §it-dest)))
(complete 55)
(if (in projects-chosen 6) ( (set §it-name "IFF")
(set §it-size size-txt-iff)
(set §it-source source-txt-iff)
(set §it-dest pro-dir)
(installtext)
(set pro-dir-iff §it-dest)))
(complete 60)
(if (in projects-chosen 1 3 4 5 7)
(
(if (in projects-chosen 1) ( (set §it-name "HotHelpTools")
(set §it-size size-txt-hothelptools)
(set §it-source source-txt-hothelptools)
(set §it-dest pro-dir)
(installtext)
(set pro-dir-hothelptools §it-dest)))
(complete 65)
(if (in projects-chosen 3) ( (set §it-name "Shell")
(set §it-size size-txt-shell)
(set §it-source source-txt-shell)
(set §it-dest pro-dir)
(installtext)
(set pro-dir-shell §it-dest)))
(complete 70)
(if (in projects-chosen 4) ( (set §it-name "ARexx")
(set §it-size size-txt-arexx)
(set §it-source source-txt-arexx)
(set §it-dest pro-dir)
(installtext)
(set pro-dir-arexx §it-dest)))
(complete 75)
(if (in projects-chosen 5) ( (set §it-name "ANSI-C")
(set §it-size size-txt-ansic)
(set §it-source source-txt-ansic)
(set §it-dest pro-dir)
(installtext)
(set pro-dir-ansic §it-dest)))
(complete 80)
(if (in projects-chosen 7) ( (set §it-name "Libs & Devs 1.3")
(set §it-size size-txt-libsdevs)
(set §it-source source-txt-libsdevs)
(set §it-dest pro-dir)
(installtext)
(set pro-dir-libsdevs §it-dest)))
(complete 85)
)
)
(complete 85)
(askdisk (dest "HotHelpInstall2_2")
(prompt (cat "\n\nBitte legen Sie nun die Disk \"HotHelpInstall2_2\" "
"in ein beliebiges Laufwerk ein!"))
(help @askdisk-help)
)
(if (in projects-chosen 0) ((working "\nBearbeite HotHelp.hdr") (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "HotHelp.hdr") "\" \"" (tackon pro-dir-hothelp "HotHelp.txt") "\""))))
(if (in projects-chosen 1) ((working "\nBearbeite HotHelpTools.hdr") (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "HotHelpTools.hdr") "\" \"" (tackon pro-dir-hothelptools "HotHelpTools.txt") "\""))))
(if (in projects-chosen 2) ((working "\nBearbeite Glossar.hdr") (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "Glossar.hdr") "\" \"" (tackon pro-dir-glossar "Glossar.txt") "\""))))
(if (in projects-chosen 3) ((working "\nBearbeite Shell.hdr") (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "Shell.hdr") "\" \"" (tackon pro-dir-shell "Shell.txt") "\""))))
(if (in projects-chosen 4) ((working "\nBearbeite ARexx.hdr") (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "ARexx.hdr") "\" \"" (tackon pro-dir-arexx "ARexx.txt") "\""))))
(if (in projects-chosen 5) ((working "\nBearbeite ANSI-C.hdr") (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "ANSI-C.hdr") "\" \"" (tackon pro-dir-ansic "ANSI-C.txt") "\""))))
(if (in projects-chosen 6) ((working "\nBearbeite IFF.hdr") (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "IFF.hdr") "\" \"" (tackon pro-dir-iff "IFF.txt") "\""))))
(if (in projects-chosen 7) ((working "\nBearbeite Libs & Devs 1.3.hdr") (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "Libs & Devs 1.3.hdr") "\" \"" (tackon pro-dir-libsdevs "Libs & Devs 1.3.txt") "\""))))
)
)
(complete 85)
; Nun wird die Pref-Datei zusammengebastelt!
(set pref
(cat "$VER: HotHelpPref " hh-version-intern " " hh-date "\n"
"TextColor=1\n"
"LightColor=" (if os-20 "2" "1") "\n"
"DarkColor=" (if os-20 "1" "2") "\n"
"RefColor=3\n"
"FontName=" (if os-20 "courier" "topaz") ".font\n"
"FontSize=" (if os-20 "15" "8") "\n"
"ScrollDelay=15\n"
"ScrollSpeed=0\n"
"LeftEdge=0\n"
"TopEdge=" (if os-20 "12" "11") "\n"
"Width=1000\n"
"Height=150\n"
"StackSize=20\n"
"KeyTab=30\n"
"KeyLayout=Columns\n"
"PrintTitle=CompleteOnly\n"
"ShowStart=Off\n"
"CloseCut=SpecialOnly\n"
"SearchArea=ActualFirst\n"
"HKAltQual=48\n"
"HKCtrlQual=8\n"
"HKShiftQual=3\n"
"HKAltCode=95\n"
"HKCtrlCode=95\n"
"HKShiftCode=95\n"
"HKAltAll=Off\n"
"HKCtrlAll=Off\n"
"HKShiftAll=Off\n"
"StartProject=HotHelp\n"
"StartKey=Startseite\n"
"ViewColor=3\n"
"SearchIgnore=On\n"
"SearchBack=Off\n"
"SearchAll=Off\n"
"ShiftProject=Libs & Devs 1.3\n"
"CtrlProject=Shell\n"
"CommandProject=Libs & Devs 1.3\n"
"FastFont=Off\n"
"DefaultFont=Off\n"
"SmartFont=On\n"
"SmartColors=On\n"
"RamIcon=On\n"
"OPrEnvironment=Off\n"
"OPrName=OnlineProjekt\n"
"OPrDir=HOTHELP:OnlineProjekte\n"
"OPrFEnter=Off\n"
"OPrFSelect=On\n"
"OPrFFirst=Off\n"
"OPrFCheck=On\n"
"OPrFDoubleCheck=On\n"
"OPrFFloatText=Off\n"
"OPrMarkExclude=float|double|char|int|long|unsigned|void|extern|static|const|register|struct|union|enum|#define|class|inline|*|VOID|BYTE|UBYTE|WORD|UWORD|SHORT|USHORT|LONG|ULONG|APTR|BPTR|CPTR|STRPTR|BSTR|BOOL|FLOAT|DOUBLE\n"
"OPrMarkPara=\n"
"OPrMarkCmtStart=/*\n"
"OPrMarkCmtEnd=*/\n"
"OPrMarkCmtLine=//\n"
"OpenOnStart=Off\n"
"Editor=Select\n"
"EnvEditor=HHEditor\n"
"ARexxHost=HOTHELP_REXX\n"
"HKAmigaQual=192\n"
"HKOnlineQual=72\n"
"HKAmigaCode=95\n"
"HKOnlineCode=33\n"
"HKAmigaAll=Off\n"
"HKOnlineAll=On\n"
"ToolsDir=" tools-dir "\n"
"DOSPattern=" (if os-20 "On" "Off") "\n"
"DisplayBeep=" (if os-21 "Flash" "DisplayBeep") "\n"
"OnlyPubScreen=Off\n"
"StdNumPad=Standard\n"
"CEDRealSize=Off\n"
"StartupMsg=On\n"
"CaseSensitivity=Off\n"
"LoadKeys=AsNeeded_Free\n"
"Language=Deutsch\n"
)
)
(working "\nDie Voreinstellungs-Datei wird erzeugt...")
(textfile
(dest (tackon hothelp-dir "HotHelp3.Pref"))
(append pref)
(confirm)
(prompt (cat "\nErzeugen der HotHelp-Voreinstellungs-Datei <"
(tackon hothelp-dir "HotHelp3.Pref")
">"))
(help (cat " In dieser Datei werden alle Voreinstellungen des gesamten "
"HotHelp-Systems festgehalten, die dann später über das Tool "
"HotHelpPref editiert werden können.\n"
" Die Datei wurde an Ihre spezielle Konfiguration angepaßt "
"und sollte daher grundsätzlich installiert werden."))
)
(complete 90)
; Nun wird die Startup-Sequence (bzw. User-StartUp) an HotHelp angepaßt.
(set cmd "")
(if tools-chosen
(if
(askbool
(prompt (cat "\nSie haben einige HotHelpTools im Verzeichnis \""
tools-dir
"\" installieren lassen. Soll ein Pfad auf dieses Verzeichnis "
"angelegt werden?"))
(help (cat " Das Anlegen eines Pfades ist nur notwendig, wenn Sie die "
"Tools auch von der Shell aus aufrufen wollen. Wenn Sie "
"lediglich mit der Workbench arbeiten, können Sie diese "
"Frage ruhigen Gewissens mit 'Nein' beantworten.\n"
" Sie sollten ebenfalls mit 'Nein' antworten, wenn Sie "
"die Tools in ein Verzeichnis kopiert haben, das bereits "
"im Suchpfad enthalten ist (z.B. \"C:\", \"Sys:Utilities\" und "
"ähnliche)."))
(default 1)
)
(set cmd (cat cmd "Path \"" tools-dir "\"\n"))
)
)
(set cmd (cat cmd "Assign HOTHELP: \"" hothelp-dir "\"\n"))
(if (patmatch (fileonly hotkeyhelp-dir) "WBStartUp")
(
(if (askbool
(prompt (cat "\nHotKeyHelp wurde im Verzeichnis '" hotkeyhelp-dir "' "
"installiert.\n\n"
"Soll das Programm dennoch in die "
"Skript-Datei 'S:User-StartUp' eingetragen werden, so "
"daß es automatisch bei jedem Start aufgerufen wird?"))
(help (cat " Alle Programme im Verzeichnis 'SYS:WBStartUp' werden "
"ab Betriebssystem-Version 2.0 automatisch gestartet, "
"sobald die Workbench geladen wird. In diesem Fall sollte "
"HotKeyHelp nicht von der Datei 'User-StartUp' aus "
"aufgerufen werden, da diese ebenfalls bei jedem Neustart "
"des Rechners ausgeführt wird.\n"
" Handelt es sich bei dem gewählten Verzeichnis jedoch "
"nicht um 'SYS:WBStartUp' oder wird auf Ihrem System die "
"Workbench nicht automatisch gestartet, sollte der "
"Aufruf HotKeyHelps in die Skriptdatei eingefügt werden, "
"damit das Programm nach jedem Start zur Verfügung steht."))
(default 0))
(
(set cmd (cat cmd "\"" (tackon hotkeyhelp-dir "HotKeyHelp") "\"\n"))
)
)
)
;else
(set cmd (cat cmd "\"" (tackon hotkeyhelp-dir "HotKeyHelp") "\"\n"))
)
(startup "HotHelp"
(prompt (cat "\nDie folgenden Befehle werden nun in die Datei \"S:User-Startup\" "
"eingetragen:\n\n"
cmd))
(help @startup-help)
(command cmd)
)
(complete 95)
(if (= old-hh-version 0)
(run (cat run-clearstartup " " tools-language)
(prompt (cat "\nClearStartup wird ausgeführt\n\n"
"Dieses Programm überarbeitet die Startup-Sequence, wenn von "
"HotHelp-Version 2 auf " hh-version " umgestiegen wird."))
(help (cat " Da sich der Installations-Vorgang zwischen HotHelp-Version "
"2 und " hh-version " erheblich unterscheidet (HotHelp 2 "
"wurde mit einem selbstgebauten Programm installiert, während "
"HotHelp " hh-version " den Commodore-Installer verwendet), hat "
"sich auch der Aufbau der beim Starten des Systems automatisch "
"ausgeführten Befehle geändert.\n"
" Unter HotHelp 2 wurden diese Befehle in die "
"Startup-Sequence eingebaut, während der Installer dafür den "
"User-Startup verwendet. Aus diesem Grund müssen beim Umstieg "
"von HotHelp 2 auf " hh-version " die alten Befehle aus der "
"Startup-Sequence wieder entfernt werden."))
(confirm)
)
)
(complete 100)
; LhA in der RAM-Disk wird nun nicht mehr benötigt.
(delete "RAM:LhA")
(user 1)
(message (cat "\nDie Installation der Demo-Version von HotHelp " hh-version " ist abgeschlossen.\n"
"Bitte starten Sie jetzt Ihren Rechner neu!\n\n"
"Anschließend können Sie HotHelp dann jederzeit über Alt-Help "
"aktivieren.\n"
"Shift-Help zeigt Hilfe zum Wort unter dem Cursor in Ihrem "
"Editor an, während Amiga-Help den Inhalt des Clipboards als "
"Schlüsselbegriff verwendet. Control-Help stellt einen Hilfstext "
"zum jeweils zuletzt eingegebenen Wort dar."))